public class L_1_1 {
    public static void printB(int num) {
        for (int i = 31; i >= 0; i--) {
            //1做左移操作,左移i个位,于num做和运算 只有对应位同为1的时候才是1,其余时候是0
            //做三目运算将每一位是否为0,1打印出来
            System.out.print(((num & (1 << i)) == 0 ? "0" : "1"));
        }
        System.out.println();

    }

    public static void main(String[] args) {
//        int a = 123456;
//        int b = 654321;
//        System.out.print("Integer.MAX_VALUE--> ");
//        //Integer的最大值
//        printB(Integer.MAX_VALUE);
//        System.out.println("Integer.MAX_VALUE--> "+Integer.MAX_VALUE);
//        System.out.print("Integer.MIN_VALUE--> ");
//        //Integer的最小值
//        printB(Integer.MIN_VALUE);
//        System.out.println("Integer.MIN_VALUE--> "+Integer.MIN_VALUE);
//        //得知范围是2^31 ~ 0 ~ 2^31 - 1
//
//        printB(a);
//        printB(b);
//        printB(a | b);
//        printB(a & b);
//        printB(a ^ b);



        int c = -33333;
        System.out.println(c);
        System.out.println(~(c - 1));

        printB(c);
        printB(~(c - 1));
        //算术右移 符号位不变
        printB(c>>1);
        //逻辑右移 整体右移,不够补0
        printB(c>>>1);
    }
}
